function fo(s:string,y:string):string{
    return s+y
}
let fun = function(a:number,b:number){
    return a+b
}
// 完整的写法
let fofu:(x:string,y:number)=>string=function(x:string,y:number):string{
    return x+y
}
// 函数的参数 形参默认值 ？

// 函数重载  函数名相同 函数中传入的数据类型不同
// 需求：当前有个函数 函数的参数有可能是字符串也可能是数字 如果都是字符串那么返回值就都是字符串 如果都是数字 那么返回值就都是数字
// function funfoo(x:string,y:string):string{
//     return x+y
// }
// function funfoonum(x:number,y:number):number{
//     return x+y
// }

// 函数名相同 形成不同的多个函数
// 函数声明重载
function funfoo(x:string,y:string):string
function funfoo(x:number,y:number):number
// 写函数
function funfoo(x:string | number,y:string | number){
    if(typeof x === 'string' && y === 'string'){
        return x+y
    }else if(typeof x === 'number' && typeof y === 'number'){
        return x+y
    }
}
console.log(funfoo('nini','haha'));
console.log(funfoo(12,34));